| 异构查询 Delphi支持异构查询。所谓异构查询,就是同时查询几个不同的数据库。这些数据库可以位于不同的服务器上,甚至服务器的类型也可以不同。比如,可以同时查询Oracle数据库、Sybase数据库和本地的dBASE表。当程序执行异构查询的时候,BDE通过Local SQL来分析和处理这个查询。正因为如此,所以与服务器相关的特定的SQL语法不支持。 要执行异构查询,可以: (1)为查询要访问的数据库建立不同的BDE别名。把一个TQuery构件放到数据模块上,DatabaseName属性为空。查询要使用的不同数据库将在SQL属性中指定。 (2)在SQL属性中指定要执行的SQL语句。在SQL语句中,每个数据表的名称前要加数据库的别名。别名和数据表之间要加冒号,并且用双引号括起来。 (3)在Params属性中指定查询的参数 (4)调用Prepare通知BDE或服务器做好准备 (5)调用Open或ExecSQL执行查询 比如,在Oracle数据库中有一个CUSTOMER数据表,Oracle数据库的别名是Oracle1;在Sybase数据库中有一个Orders数据表,Sybase数据库的别名是Sybase1;那么,一个简单的异构查询如下所示: SELECT Customer.CustNo, Orders.OrderNo FROM "Oracle1:CUSTOMER" JOIN "Sybase1:ORDERS" ON (Customer.CustNo = Orders.CustNo) WHERE (Customer.CustNo = 1503) 在异构查询中除了使用“别名”外,也可以指定一个数据库。可以使用一个TDatabase构件,设置TDatabase构件的DatabaseName属性为应用程序专用的别名,在SQL语句中可以用专用的别名代替BDE别名。 RainBow策划制作 版权所有 |